home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Tech Arsenal 1
/
Tech Arsenal (Arsenal Computer).ISO
/
tek-01
/
bccmouse.zip
/
MOUSE.H
< prev
next >
Wrap
C/C++ Source or Header
|
1991-10-27
|
3KB
|
115 lines
/**********************************************************************
*
* NAME: mouse.h
*
* DESCRIPTION: C++ mouse handler
*
* M O D I F I C A T I O N H I S T O R Y
*
* when who what
* -------------------------------------------------------------------
* 12/15/90 J. Alan Eldridge created
*
*********************************************************************/
#ifndef __MOUSE_H
#define __MOUSE_H
#ifndef __cplusplus
#error mouse.h needs a C++ compiler
#endif
#if defined(__TURBOC__)
struct MouEvent {
int event;
int buttons;
int vertpos;
int horzpos;
int kbshift;
long ticks;
};
void mou_seteventhandler(int mask,
void cdecl huge _saveregs (*func)());
int mou_swapeventhandler(int mask,
void cdecl huge _saveregs (*newhandler)(),
void cdecl huge _saveregs (**oldhandler)());
// bits for event masks
enum {
// mouse events
MouEvMove = 0x01,
MouEvLeftDown = 0x02,
MouEvLeftUp = 0x04,
MouEvRightDown = 0x08,
MouEvRightUp = 0x10,
MouEvCenterDown = 0x20,
MouEvCenterUp = 0x40,
MouEvAllEvents = 0x7F,
// shift key events
MouKInsert = 0x0080,
MouKCapsLk = 0x0040,
MouKNumLk = 0x0020,
MouKScrlLk = 0x0010,
MouKAltDn = 0x0008,
MouKCtlDn = 0x0004,
MouKLShDn = 0x0002,
MouKRShDn = 0x0001,
MouKInsDn = 0x8000,
MouKCapsLkDn = 0x4000,
MouKNumLkDn = 0x2000,
MouKScrlLkDn = 0x1000,
MouKKBHold = 0x0800
};
// driver functions
int mou_resetmouse();
void mou_showptr();
void mou_hideptr();
inline void mou_refreshptr() // ugly, but works
{ mou_hideptr(); mou_showptr(); }
void mou_setsoftptr(int andmask = 0x77ff, int xormask = 0x7700);
void mou_sethardptr(int start = 0, int end = 7);
int mou_savestatesize();
void mou_savestate(unsigned char *buf);
void mou_restorestate(unsigned char *buf);
int mou_resetdriver();
void interrupt (*mou_disabledriver())();
void mou_enabledriver();
// (very) general status
int mou_exists();
int mou_buttons();
// button info
int mou_buttonpress(int &n, int &v, int &h);
int mou_buttonrelease(int &n, int &v, int &h);
// pointer settings
void mou_sethlimits(int minval, int maxval);
void mou_setvlimits(int minval, int maxval);
void mou_setposition(int v, int h);
void mou_setexclusionarea(int yul, int xul, int ylr, int xlr);
// interrupt handler control
int mou_seteventmask(int newmask = MouEvAllEvents);
int mou_getevent(MouEvent &ev);
void mou_flushevents();
int mou_seteventqsize(int newsize = 0);
// keyboard shift state
extern volatile int far *mou_pkbshift;
inline int mou_getkbshift()
{ return *mou_pkbshift; }
// high level interrupt handler control
int mou_setusermask(int newmask = MouEvAllEvents);
void mou_setuserfunc(int (*userfunc)(MouEvent &) = 0);
#endif // __TURBOC__
#endif // __MOUSE_H